home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 005 / curve10.arc / CURVE10.DOC < prev   
Text File  |  1987-02-09  |  7KB  |  191 lines

  1.  
  2.                         C U R V E 1 0
  3.                         -------------
  4.  
  5.  
  6. CURVE10.COM is a public domain program written by :
  7.  
  8.     L. R. Holliday
  9.     Vista Chemical Company
  10.     P. O. Box 500
  11.     Ponca City, Okla.  74602
  12.     (405) 767-6326
  13.  
  14. Copies of this program are not to be sold for profit. The program may be
  15. copied freely. USERS assume all risks when using this program.
  16.  
  17. CURVE10.COM is an interactive linear curve-fitting program for the IBM PC,
  18. originally written in TURBO PASCAL.  It runs under DOS Version 2.0 or
  19. higher. The program performs calculations similar to the Tektronix General
  20. Graphing program, but no graphics capability is provided. If any
  21. difficulty is experienced in using the program, please contact the above.
  22.  
  23. CURVE10 can handle up to 100 data points, and can read in values for up to
  24. 10 variables for each data point. It allows correlation of one Y with one X
  25. using ten different equation forms. Any two of the variables can be chosen
  26. for X and Y, and alternate variables can be chosen without exiting from the
  27. program.  Also, alternate data sets can be chosen without exiting from the
  28. program.
  29.  
  30. The ten equation forms are listed below :
  31.  
  32.     0. Y = b1 * X
  33.     1. Y = b0 + b1 * X
  34.     2. Y = b0 + b1 * ln(X)
  35.     3. Y = b0 + b1 / X
  36.     4. Y = exp(b0 + b1 * X)
  37.     5. Y = exp(b0 + b1 * ln(X))  = exp(b0) * X ^ b1
  38.     6. Y = exp(b0 + b1 / X)
  39.     7. Y = 1 / (b0 + b1 * X)
  40.     8. Y = 1 / (b0 + b1 * ln(X))
  41.     9. Y = 1 / (b0 + b1 / X)
  42.  
  43. The program calculates the b0 and b1 values for each of the above equations
  44. by first linearizing the equations by transforming the variables.
  45. Tranformations are as follows :
  46.  
  47.     Equation    X Transformation    Y Transformation
  48.     --------    ----------------    ----------------
  49.         0             None             None
  50.         1             None             None
  51.         2             ln(X)             None
  52.         3             1 / X             None
  53.         4             None             ln(Y)
  54.         5             ln(X)             ln(Y)
  55.         6             1 / X             ln(Y)
  56.         7             None             1 / Y
  57.         8             ln(X)             1 / Y
  58.         9             1 / X             1 / Y
  59.  
  60.  
  61. The following equations are used to calculate the b0 and b1 values :
  62.  
  63.     For Equation 0 :
  64.         b0 = 0.0
  65.         b1 = sum (X * Y) / sum (X * X)
  66.  
  67.     For Equations 1 through 9 :
  68.         b1 = (n * sum (X * Y) - sum (X) * sum (Y)) /
  69.          (n * sum (X * X) - sum (X) * sum (X))
  70.         b0 = (sum (Y) - b1 * sum (X)) / n
  71.  
  72. R Square is calculated (after transforming the predicted values back to
  73. their original form) by the formula :
  74.  
  75.         R Square = 1.0 - (sum error squared) / (sum difference squared),
  76.  
  77. where sum error squared = the sum of squared differences between observed
  78. values and predicted values, and sum difference squared = the sum of
  79. squared differences between observed values and the average value.
  80.  
  81. Since this method is used for calculating R Square, negative values for R
  82. Square can occur, if the equation is a very poor choice for fitting the
  83. data.  This is not likely to occur for equations 1,2, or 3, but could occur
  84. for any of the other equations. This is because the values calculated for
  85. b0 and b1 are the correct values for fitting the transformed Y values, but
  86. are not neccessarily the correct values for fitting the original Y values.
  87. Negative R Square values can be obtained for equation 0, even though Y was
  88. not transformed, because the equation is forced through the origin.
  89.  
  90. Data Input
  91. ----------
  92.  
  93. Input to the program has been "bullet-proofed" to some extent. However, the
  94. program can be made to abort by entering erroneous responses to some of the
  95. prompts. A Ctrl-Break will sometimes cause a system halt.
  96.  
  97. The program can accept data directly from the keyboard or from (text) data
  98. files. If data are entered from the keyboard, they will NOT be saved.
  99. Also, errors made in entering a line of data from the keyboard cannot be
  100. corrected after a carriage return has been issued.
  101.  
  102. A text data file can be created using any text editing program, such as
  103. EDLIN or the Turbo Pascal compiler. A suitable data file can also be
  104. created by using Lotus 1-2-3 to create a .PRN file. The data must be in
  105. text form, with one line for each data point, and no line numbers. Each
  106. value must be separated from the previous value by at least one blank
  107. (several blanks are suggested to improve readability of the data file).
  108. A sample data file, CURVE10.DAT, is provided to illustrate the data file
  109. format.
  110.  
  111. Using the Program
  112. -----------------
  113.  
  114. The program can be accessed by typing the file name (CURVE10).
  115.  
  116. The program then provides a series of prompts to the user :
  117.  
  118.     INPUT FROM FILE (F) OR KEYBOARD (K)
  119.     ?
  120.     ENTER NO. OF DATA POINTS AND NO. OF VARIABLES
  121.     ?  (Response to this prompt should be two integer values separated
  122.             by at least one blank)
  123.  
  124. If K was selected, the program prompts :
  125.  
  126.     ENTER VALUES FOR VARIABLES n PER LINE
  127.  
  128.     Point  X1   X2   X3   X4   X5   X6   X7   X8   X9   X10
  129.     ----- ---- ---- ---- ---- ---- ---- ---- ---- ---- -----
  130.       1
  131.       (The user types in a value for each variable, up to the total
  132.            number of variables in the data set, followed by a carriage 
  133.            return)
  134.           2
  135.         (etc.)
  136.  
  137. If F was selected, the program prompts :
  138.  
  139.     ENTER FILENAME WHICH CONTAINS DATA (X:NAME.EXT)
  140.     ?
  141.  
  142. After the file name has been entered and the data have been read correctly,
  143. the program prompts :
  144.  
  145.     ENTER VARIABLE NO. FOR X THEN Y
  146.     ?
  147.     (If the user wants to correlate variable 2 with variable 5, the 
  148.          correct response would be  2 5 <return> )
  149.  
  150. The program then will display a menu of choices :
  151.  
  152.  
  153.  
  154.  
  155.       ROUTINES AVAILABLE IN REGRESSIONS PACKAGE :
  156.        0. FIT DATA TO  Y = B1 * X
  157.        1. FIT DATA TO  Y = B0 + B1 * X
  158.        2. FIT DATA TO  Y = B0 + B1 * ln(X)
  159.        3. FIT DATA TO  Y = B0 + B1 * 1 / X
  160.        4. FIT DATA TO  Y = exp(B0 + B1 * X)
  161.        5. FIT DATA TO  Y = exp(B0) * (X ^ B1)
  162.        6. FIT DATA TO  Y = exp(B0 * B1 / X)
  163.        7. FIT DATA TO  Y = 1 / (B0 * B1 * X)
  164.        8. FIT DATA TO  Y = 1 / (B0 * B1 * ln(X))
  165.        9. FIT DATA TO  Y = 1 / (B0 * B1 * 1 / X)
  166.       10. FIT DATA TO  ALL  10  EQUATIONS
  167.       11. CHOOSE NEW X AND Y
  168.       12. INPUT NEW DATASET
  169.       13. EXIT FROM PROGRAM
  170.          ENTER ROUTINE DESIRED (0 TO 13)
  171.  
  172. The user makes a selection from this menu, and the program responds
  173. accordingly. At various points during execution, the program will ask the
  174. user if he wants to send results to the printer and the screen
  175. simultaneously.  Also, the program will ask the user if he wants to see a
  176. table of residuals (or see it and print it simultaneously). After
  177. completing execution, the program will return to the menu above.
  178.  
  179. The user can go through the calculations once without printing the results,
  180. and then repeat the calculations while printing the results. The program
  181. will not actually repeat the calculations unless the user changes some
  182. selection, but it will review the results just as if it were repeating the
  183. calculations.
  184.  
  185. Please note that if an alphabetic character is input when a numeric value
  186. is expected, the program will abort. This applies to all inputs except
  187. responses to prompts from the menu above.
  188.     9             1 / X             1 / Y
  189.  
  190.  
  191. Th